package com.bysj.agent.feign;

import cn.dev33.satoken.same.SaSameUtil;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;

/**
 * feign拦截器, 在feign请求发出之前，加入一些操作 
 */
//@Component
public class FeignInterceptor implements RequestInterceptor {
    
    // 为 Feign 的 RCP调用 添加请求头Same-Token 
    @Override
    public void apply(RequestTemplate requestTemplate) {
        // 优先使用ThreadLocal中的token
        String token = TokenService.getToken();
        
        if (token != null && !token.isEmpty()) {
            // 使用从WebSocket传递来的token
            requestTemplate.header(SaSameUtil.SAME_TOKEN, token);
            System.out.println("使用传递的Token: " + token);
        } else {
            // 回退到默认的SaSameUtil.getToken()
            requestTemplate.header(SaSameUtil.SAME_TOKEN, SaSameUtil.getToken());
        }
    }
}
